package cn.learn.validator.groupsequence;

import cn.learn.validator.groupby.Employee;
import org.hibernate.validator.spi.group.DefaultGroupSequenceProvider;

import java.util.ArrayList;
import java.util.List;

/**
 * bean参数间的逻辑校验
 *
 * @author huangyezhan
 * @version 1.0
 * @date 2020年12月11日22:57
 */
public class EmployeeGroupSequenceProvider implements DefaultGroupSequenceProvider<Employee> {

    /**
     * 举例：
     * 1、员工的 age 在 20-25之间，title必须以“初级”开头
     * 2、员工的 age 在 25-30之间，title必须以“中级”开头
     */
    @Override
    public List<Class<?>> getValidationGroups(Employee employee) {
        List<Class<?>> defaultGroupSequence = new ArrayList<>();
        //相当于添加了默认组
        defaultGroupSequence.add( Employee.class );

        if (employee != null){
            if (employee .getAge() > 20 && employee.getAge() <=25){
                defaultGroupSequence.add(Employee.Junior.class);
            }else if(employee .getAge() > 25 && employee.getAge() <=30){
                defaultGroupSequence.add(Employee.Middle.class);
            }
        }


        return defaultGroupSequence;
    }

}
